#ifndef GAMEWINDOW_H
#define GAMEWINDOW_H

#include <QMainWindow>
#include<QTimer>
#include<QList>
#include<QKeyEvent>
#include"map.h"
#include"plane.h"
#include"bullet.h"
#include"enemy.h"
#include"bomb.h"
#include"boss.h"

QT_BEGIN_NAMESPACE
namespace Ui { class GameWindow; }
QT_END_NAMESPACE

class GameWindow : public QMainWindow
{
    Q_OBJECT

public:
    GameWindow(QWidget *parent = nullptr);
    ~GameWindow();
    //初始化游戏
    void initScene();
    //键盘事件
    void keyPressEvent(QKeyEvent* event);
    void keyReleaseEvent(QKeyEvent* event);
    //飞机移动
    void PlaneMove();
    //计时器
    QTimer m_Timer;
    QTimer* mPlaneMoveTimer;
    //开启游戏
    void playGame();
    //更新游戏
    void updatePosition();
    //绘制游戏
    void paintEvent(QPaintEvent*);
    //结束游戏
    void endgame();
    //地图
    map m_map;
    //飞机
    plane m_plane;
    //按键
    QList<int>mKeyList;
    //敌机出场
    void enemyToScene();
    //敌机数组
    enemy m_enemy[ENEMY_NUM];
    //敌机出场间隔时间
    int m_recorder;
    //大boss出场
    void bossToScene();
    //大boss
    boss m_boss;
    //大boss出场间隔时间
    int m_recorder2;
    //碰撞
    void collisionDetecion();
    void collisionDetecion2();
    void collisionDetecion3();
    //爆炸数组
    bomb m_bomb[BOMB_NUM];
    //我方爆炸数组
    bomb m_bomb2[BOMB_NUM];
    //设置初始分数
    int score=0;

private slots:
    void on_pushButton_clicked();

private:
    Ui::GameWindow *ui;
};
#endif // GAMEWINDOW_H
